diff options
author | Theodore Tso <tytso@mit.edu> | 1992-09-29 14:47:04 +0000 |
---|---|---|
committer | Theodore Tso <tytso@mit.edu> | 1992-09-29 14:47:04 +0000 |
commit | d96ae575ff8eef11fe1dfb3bffdede9d31cb5e57 (patch) | |
tree | a9f3ca992924a40f62a5be25d78358569e3f9f0a /src/appl/user_user/client.c | |
parent | c5f40f105f0c30051da855511d43376b17a05ef6 (diff) | |
download | krb5-d96ae575ff8eef11fe1dfb3bffdede9d31cb5e57.tar.gz krb5-d96ae575ff8eef11fe1dfb3bffdede9d31cb5e57.tar.xz krb5-d96ae575ff8eef11fe1dfb3bffdede9d31cb5e57.zip |
New optional argument for specifiying which port to use
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@2443 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/appl/user_user/client.c')
-rw-r--r-- | src/appl/user_user/client.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/appl/user_user/client.c b/src/appl/user_user/client.c index cfeecc0afa..6b40cd30c2 100644 --- a/src/appl/user_user/client.c +++ b/src/appl/user_user/client.c @@ -41,7 +41,11 @@ static char rcsid_client_c[] = #include <krb5/los-proto.h> #include <com_err.h> +#ifdef __STDC__ extern char *strdup(const char *); +#else +extern char *strdup(); +#endif krb5_error_code tgt_keyproc(DECLARG(krb5_pointer, keyprocarg), @@ -76,20 +80,29 @@ char *argv[]; krb5_principal sprinc; /* principal of server */ krb5_data reply, msg, princ_data; krb5_tkt_authent *authdat; + unsigned short port; - if (argc < 2 || argc > 3) + if (argc < 2 || argc > 4) { - fputs ("usage: uu-client <hostname> [message]\n", stderr); + fputs ("usage: uu-client <hostname> [message [port]]\n", stderr); return 1; } krb5_init_ets(); - if ((serv = getservbyname ("uu-sample", "tcp")) == NULL) + if (argc == 4) + { + port = htons(atoi(argv[3])); + } + else if ((serv = getservbyname ("uu-sample", "tcp")) == NULL) { fputs ("uu-client: unknown service \"uu-sample/tcp\"\n", stderr); return 2; } + else + { + port = serv->s_port; + } if ((host = gethostbyname (argv[1])) == NULL) { @@ -128,7 +141,7 @@ char *argv[]; } serv_net_addr.sin_family = AF_INET; - serv_net_addr.sin_port = serv->s_port; + serv_net_addr.sin_port = port; i = 0; while (1) @@ -142,7 +155,7 @@ char *argv[]; if (connect(s, (struct sockaddr *)&serv_net_addr, sizeof (serv_net_addr)) == 0) break; com_err ("uu-client", errno, "connecting to \"%s\" (%s).", - hname, inet_ntoa(serv_net_addr.sin_addr.s_addr)); + hname, inet_ntoa(serv_net_addr.sin_addr)); } #else s = 1; |