summaryrefslogtreecommitdiffstats
path: root/src/appl/user_user/client.c
diff options
context:
space:
mode:
authorTheodore Tso <tytso@mit.edu>1992-09-29 14:47:04 +0000
committerTheodore Tso <tytso@mit.edu>1992-09-29 14:47:04 +0000
commitd96ae575ff8eef11fe1dfb3bffdede9d31cb5e57 (patch)
treea9f3ca992924a40f62a5be25d78358569e3f9f0a /src/appl/user_user/client.c
parentc5f40f105f0c30051da855511d43376b17a05ef6 (diff)
downloadkrb5-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.c23
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;