コード例 #1
0
static void server_opts(int argc, char **argv)
{
	int long_index = 0;
	int opt;
	char *errptr;

	optind = 0;
	while ((opt = getopt_long(argc, argv, "?hp:t:f:",
	    server_options, &long_index)) != -1) {
	    	switch(opt) {
	    	case 'h':
	    	case '?':
	    		server_usage();
	    		exit(0);
	    	case 'p':
	    		errno = 0;
	    		port = strtoul(optarg, &errptr, 10);
	    		if (*errptr != '\0' || errno) {
	    			server_usage();
	    			exit(-1);
	    		}
	    		break;
	    	case 't':
	    		errno = 0;
	    		workers = strtoul(optarg, &errptr, 10);
	    		if (*errptr != '\0' || errno || !workers ||
	    		    workers > 1000) {
	    			server_usage();
	    			exit(-1);
	    		}
	    		break;
	    	case 'f':
	    		path = optarg;
	    		break;
	    	default:
	    		server_usage();
	    		exit(-1);
	    	}
	}
}
コード例 #2
0
ファイル: common.c プロジェクト: alexzhang2015/osx-10.9
int
server_setup(krb5_context *context, int argc, char **argv)
{
    int port = common_setup(context, &argc, argv, server_usage);
    krb5_error_code ret;

    if(argv[argc] != NULL)
	server_usage(1, args, num_args);
    if (keytab_str != NULL)
	ret = krb5_kt_resolve (*context, keytab_str, &keytab);
    else
	ret = krb5_kt_default (*context, &keytab);
    if (ret)
	krb5_err (*context, 1, ret, "krb5_kt_resolve/default");
    return port;
}
コード例 #3
0
ファイル: netcpd.c プロジェクト: coderbyheart/hsrm-mi-bsra
/**
 * Parst die übergebenen Argumente.
 */
void server_parse_params(int argc, char *argv[]) {
	int param = 0;
	while ((param = getopt(argc, argv, "h?p:d:")) != -1) {
		switch (param) {
		case 'p':
			port = atoi(optarg);
			break;
		case 'd':
			debuglevel = atoi(optarg);
			break;
		case 'h':
		case '?':
		default:
			server_usage();
			exit(1);
		}
	}
}
コード例 #4
0
int main (int argc, char *argv[] )
{
    lscp_server_t *pServer;
    char szLine[200];
    int cchLine;
    lscp_connect_t *p;

#if defined(WIN32)
    if (WSAStartup(MAKEWORD(1, 1), &_wsaData) != 0) {
        fprintf(stderr, "lscp_server: WSAStartup failed.\n");
        return -1;
    }
#endif

    srand(time(NULL));

    pServer = lscp_server_create(SERVER_PORT, server_callback, NULL);
    if (pServer == NULL)
        return -1;

    server_usage();
    server_prompt();

    while (fgets(szLine, sizeof(szLine), stdin)) {

        cchLine = strlen(szLine);
        while (cchLine > 0 && (szLine[cchLine - 1] == '\n' || szLine[cchLine - 1] == '\r'))
            cchLine--;
        szLine[cchLine] = '\0';

        if (strcmp(szLine, "exit") == 0 || strcmp(szLine, "quit") == 0)
            break;
        else
        if (strcmp(szLine, "list") == 0) {
            for (p = pServer->connects.first; p; p = p->next) {
                printf("client: sock=%d addr=%s tcp.port=%d udp.port=%d ping=%d sessid=%s.\n",
                    p->client.sock,
                    inet_ntoa(p->client.addr.sin_addr),
                    ntohs(p->client.addr.sin_port),
                    p->port,
                    p->ping,
                    p->sessid
                );
            }
        }
        else
        if (cchLine > 0 && strcmp(szLine, "help") != 0)
            lscp_server_broadcast(pServer, szLine, strlen(szLine));
        else
            server_usage();

        server_prompt();
    }

    lscp_server_destroy(pServer);

#if defined(WIN32)
    WSACleanup();
#endif

    return 0;
}