static int writen(int fd, char *ptr, int nbytes);
static int readln(int fd, char *out, int nbytes);
-static int echo(int, void *);
-static int upper_echo(int, void *);
+
+static int new_conn(int, struct timeval *, void *);
+static int reject(int);
+static int disconnect(int, struct timeval *, void *);
+
+static int echo(int, struct timeval *, void *);
+static int upper_echo(int, struct timeval *, void *);
#define ECHO_PORT 9999
#define UPPER_ECHO_PORT 9998
#define SRV_UPPER_ECHO 1
static struct glite_srvbones_service service_table[] = {
- { "Echo Service", -1, NULL, echo, NULL, NULL },
- { "Upper Echo Service", -1, NULL, upper_echo, NULL, NULL }
+ { "Echo Service", -1, new_conn, echo, reject, disconnect },
+ { "Upper Echo Service", -1, new_conn, upper_echo, reject, disconnect }
};
int main(void)
exit(1);
}
+
+ glite_srvbones_set_param(GLITE_SBPARAM_SLAVES_COUNT, 1);
glite_srvbones_run(NULL, service_table, sizofa(service_table), 1);
return 0;
}
-int upper_echo(int fd, void *data)
+int upper_echo(int fd, struct timeval *to, void *data)
{
int n, i;
char line[80];
return n;
}
else if ( n == 0 )
- return 0;
+ return ENOTCONN;
for ( i = 0; i < n; i++ )
line[i] = toupper(line[i]);
return 0;
}
-int echo(int fd, void *data)
+int echo(int fd, struct timeval *to, void *data)
{
int n;
char line[80];
return n;
}
else if ( n == 0 )
- return 0;
+ return ENOTCONN;
if ( writen(fd, line, n) != n )
{
return 0;
}
+int new_conn(int conn, struct timeval *to, void *cdata)
+{
+ dprintf(("srv-bones example: new_conn handler\n"));
+ return 0;
+}
+
+int reject(int conn)
+{
+ dprintf(("srv-bones example: reject handler\n"));
+ return 0;
+}
+
+int disconnect(int conn, struct timeval *to, void *cdata)
+{
+ dprintf(("srv-bones example: disconnect handler\n"));
+ return 0;
+}
+
int writen(int fd, char *ptr, int nbytes)
{
int nleft, nwritten;