+static int inter_remote(struct interface *interface, char *filename, int line, char *parameter, char *value)
+{
+ struct interface *searchif;
+
+ if (!value[0]) {
+ SPRINT(interface_error, "Error in %s (line %d): parameter '%s' expects application name as value.\n", filename, line, parameter);
+ return(-1);
+ }
+ searchif = interface_newlist;
+ while(searchif) {
+ if (interface->remote && !strcmp(interface->remote_app, value)) {
+ SPRINT(interface_error, "Error in %s (line %d): interface '%s' already uses remote application '%s'.\n", filename, line, interface->name, value);
+ return(-1);
+ }
+ searchif = searchif->next;
+ }
+
+ /* goto end of chain again to set application name */
+ interface->remote = 1;
+ SCPY(interface->remote_app, value);
+
+ return(0);
+}
+static int inter_context(struct interface *interface, char *filename, int line, char *parameter, char *value)
+{
+ if (!value[0]) {
+ SPRINT(interface_error, "Error in %s (line %d): parameter '%s' expects application context as value.\n", filename, line, parameter);
+ return(-1);
+ }
+ SCPY(interface->remote_context, value);
+
+ return(0);
+}
+static int inter_shutdown(struct interface *interface, char *filename, int line, char *parameter, char *value)
+{
+ interface->shutdown = 1;
+
+ return(0);
+}
+static int inter_bridge(struct interface *interface, char *filename, int line, char *parameter, char *value)
+{
+ if (!value || !value[0]) {
+ SPRINT(interface_error, "Error in %s (line %d): Missing destination interface name.\n", filename, line);
+ return(-1);
+ }
+ interface->app = EAPP_TYPE_BRIDGE;
+ SCPY(interface->bridge_if, value);
+
+ return(0);
+}