⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ckcnet.c

📁 KERMIT工具 这在办公室下载不了,很多人都没有载不到.
💻 C
📖 第 1 页 / 共 5 页
字号:
#endif /* TCP_NODELAY */#ifdef SO_DONTROUTEint tcp_dontroute = 0;#endif /* SO_DONTROUTE */#ifdef SO_LINGERint tcp_linger  = 0;                    /* SO_LINGER */int tcp_linger_tmo = 0;                 /* SO_LINGER timeout */#endif /* SO_LINGER */#ifdef HPUX                             /* But the data structures */#ifndef HPUX8                           /* needed for linger are not */#ifndef HPUX9                           /* defined in HP-UX versions */#ifndef HPUX10                          /* prior to 8.00. */#ifdef SO_LINGER#undef SO_LINGER#endif /* SO_LINGER */#endif /* HPUX10 */#endif /* HPUX9 */#endif /* HPUX8 */#endif /* HPUX */#ifndef SO_OOBINLINE                    /* Hopefully only HP-UX 7.0 */#define SO_OOBINLINE 0x0100#endif /* SO_OOBINLINE */#ifndef TCPSNDBUFSIZ#ifdef VMS#ifdef __alpha#define TCPSNDBUFSIZ 16384#endif /* __alpha */#endif /* VMS */#endif /* TCPSNDBUFSIZ */#ifndef TCPSNDBUFSIZ#define TCPSNDBUFSIZ -1#endif /* TCPSNDBUFSIZ */#ifdef SO_SNDBUFint tcp_sendbuf = TCPSNDBUFSIZ;#endif /* SO_SNDBUF */#ifdef SO_RCVBUFint tcp_recvbuf = -1;#endif /* SO_RCVBUF */#ifdef SO_KEEPALIVEint tcp_keepalive = 1;#endif /* SO_KEEPALIVE */#endif /* SOL_SOCKET */#endif /* NOTCPOPTS */#ifndef NETCONN/*  Network support not defined.  Dummy functions here in case #ifdef's forgotten elsewhere.*/int                                     /* Open network connection */netopen(name, lcl, nett) char *name; int *lcl, nett; {    return(-1);}int                                     /* Close network connection */netclos() {    return(-1);}int                                     /* Check network input buffer */nettchk() {    return(-1);}int                                     /* Flush network input buffer */netflui() {    return(-1);}int                                     /* Send network BREAK */netbreak() {    return(-1);}int                                     /* Input character from network */netinc(timo) int timo; {    return(-1);}int                                     /* Output character to network */#ifdef CK_ANSICnettoc(CHAR c)#elsenettoc(c) CHAR c;#endif /* CK_ANSIC *//* nettoc */ {    return(-1);}intnettol(s,n) CHAR *s; int n; {    return(-1);}#else /* NETCONN is defined (much of this module...) */#ifdef NETLEBUFVOIDle_init() {                             /* LocalEchoInit() */    int i;    for (i = 0; i < LEBUFSIZ; i++)      le_buf[i] = '\0';    le_start = 0;    le_end = 0;    le_data = 0;    tt_push_inited = 1;}VOIDle_clean() {                            /* LocalEchoCleanup() */    le_init();    return;}intle_inbuf() {    int rc = 0;    if (le_start != le_end) {        rc = (le_end -              le_start +              LEBUFSIZ) % LEBUFSIZ;    }    return(rc);}int#ifdef CK_ANSICle_putchar(CHAR ch)#elsele_putchar(ch) CHAR ch;#endif /* CK_ANSIC *//* le_putchar */ {    if ((le_start - le_end + LEBUFSIZ)%LEBUFSIZ == 1) {        debug(F110,"le_putchar","buffer is full",0);        return(-1);    }    le_buf[le_end++] = ch;    if (le_end == LEBUFSIZ)      le_end = 0;    le_data = 1;    return(0);}int#ifdef CK_ANSICle_puts(CHAR * s, int n)#elsele_puts(s,n) CHAR * s; int n;#endif /* CK_ANSIC *//* le_puts */ {    int rc = 0;    int i = 0;    CHAR * p = (CHAR *)"le_puts";    hexdump(p,s,n);    for (i = 0; i < n; i++)      rc = le_putchar((char)s[i]);    debug(F101,"le_puts","",rc);    return(rc);}int#ifdef CK_ANSICle_putstr(CHAR * s)#elsele_putstr(s) CHAR * s;#endif /* CK_ANSIC *//* le_puts */ {    CHAR * p;    int rc = 0;    p = (CHAR *)"le_putstr";    hexdump(p,s,(int)strlen((char *)s));    for (p = s; *p && !rc; p++)      rc = le_putchar(*p);    return(rc);}int#ifdef CK_ANSICle_getchar(CHAR * pch)#else /* CK_ANSIC */le_getchar(pch) CHAR * pch;#endif /* CK_ANSIC *//* le_gatchar */ {    int rc = 0;    if (le_start != le_end) {        *pch = le_buf[le_start];        le_buf[le_start] = 0;        le_start++;        if (le_start == LEBUFSIZ)          le_start = 0;        if (le_start == le_end) {            le_data = 0;        }        rc++;    } else {        *pch = 0;    }    return(rc);}#endif /* NETLEBUF */#ifdef VMS/*  In edit 190, we moved tn_ini() to be called from within netopen().  But tn_ini() calls ttol(), and ttol() checks to see if it's a net  connection, but the flag for that isn't set until after netopen()  is finished.  Since, in this module, we are always doing network  output anyway, we just call nettol() directly, instead of going thru  ttol().  Only needed for VMS, since UNIX, AOS/VS, and VOS can handle  net connections just like regular connections in ttol(), and OS/2  has a special routine for this.*/#define ttol nettol#endif /* VMS */int tcpsrfd = -1;#ifdef CK_KERBEROSchar * krb5_d_principal = NULL;         /* Default principal */char * krb5_d_instance = NULL;          /* Default instance */char * krb5_d_realm = NULL;             /* Default realm */char * krb5_d_cc = NULL;                /* Default credentials cache */char * krb5_d_srv   = NULL;             /* Default Service */int    krb5_d_lifetime = 600;           /* Default lifetime (10 hours) */int    krb5_d_forwardable = 0;          /* creds not forwardable */int    krb5_d_proxiable = 0;            /* creds not proxiable */int    krb5_d_renewable = 0;            /* creds not renewable (0 min) */int    krb5_autoget = 1;                /* Autoget TGTs */int    krb5_autodel = 0;                /* Auto delete TGTs */int    krb5_d_getk4 = 0;                /* K5 Kinit gets K4 TGTs */int    krb5_checkaddrs = 1;             /* Check TGT Addrs */int    krb5_d_no_addresses = 0;         /* Do not include IP Addresses */char * krb5_d_addrs[KRB5_NUM_OF_ADDRS+1]={NULL,NULL}; /* Addrs to include */int    krb5_errno = 0;                  /* Last K5 errno */char * krb5_errmsg = NULL;              /* Last K5 errmsg */char * k5_keytab = NULL;char * krb4_d_principal = NULL;         /* Default principal */char * krb4_d_realm = NULL;             /* Default realm */char * krb4_d_srv   = NULL;             /* Default Service */int    krb4_d_lifetime = 600;           /* Default lifetime (10 hours) */int    krb4_d_preauth = 1;              /* Use preauth requests */char * krb4_d_instance = NULL;          /* Default instance */int    krb4_autoget = 1;                /* Autoget TGTs */int    krb4_autodel = 0;                /* Auto delete TGTs */int    krb4_checkaddrs = 1;             /* Check TGT Addrs */char * k4_keytab = NULL;int    krb4_errno = 0;                  /* Last K4 errno */char * krb4_errmsg = NULL;              /* Last K4 errmsg */struct krb_op_data krb_op = {           /* Operational data structure */    0, NULL                             /* (version, cachefile) */};struct krb4_init_data krb4_init = {     /* Kerberos 4 INIT data structure */    0, NULL, NULL, NULL, NULL};struct krb5_init_data krb5_init = {     /* Kerberos 5 INIT data structure */    0, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0,    { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,      NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL },    0};struct krb5_list_cred_data krb5_lc = {  /* List Credentials data structure */    0, 0, 0};int krb_action = -1;                    /* Kerberos action to perform */#ifndef CK_AUTHENTICATIONchar *ck_krb4_getrealm() {    return("");}char *ck_krb5_getrealm(cc) char * cc; {    return("");}char *ck_krb4_getprincipal() {    return("");}char *ck_krb5_getprincipal(cc) char * cc; {    return("");}#endif /* CK_AUTHENTICATION *//*  I N I _ K E R B  --  Initialize Kerberos data  */VOIDini_kerb() {    int i;    krb_action = -1;                    /* No action specified */    krb_op.version = 0;                 /* Kerberos version (none) */    krb_op.cache = NULL;                /* Cache file (none) *//* Kerberos 5 */    krb5_init.forwardable = krb5_d_forwardable; /* Init switch values... */    krb5_init.proxiable   = krb5_d_proxiable;    krb5_init.lifetime    = krb5_d_lifetime;    krb5_init.renew       = 0;    krb5_init.renewable   = krb5_d_renewable;    krb5_init.validate    = 0;    krb5_init.no_addresses = krb5_d_no_addresses;    krb5_init.getk4       = krb5_d_getk4;    if (krb5_init.postdate) {        free(krb5_init.postdate);        krb5_init.postdate = NULL;    }    if (krb5_init.service) {        free(krb5_init.service);        krb5_init.service = NULL;    }    if (!krb5_d_cc || !krb5_d_cc[0]) {  /* Set default cache */        char * p;        p = ck_krb5_get_cc_name();        makestr(&krb5_d_cc,(p && p[0]) ? p : NULL);    }    if (!krb5_d_realm || !krb5_d_realm[0]) { /* Set default realm */        char * p;        p = ck_krb5_getrealm(krb5_d_cc);        makestr(&krb5_d_realm,(p && p[0]) ? p : NULL);    }    makestr(&krb5_init.instance,krb5_d_instance);    makestr(&krb5_init.realm,krb5_d_realm); /* Set realm from default */    if (krb5_init.password) {        memset(krb5_init.password,0xFF,strlen(krb5_init.password));        free(krb5_init.password);        krb5_init.password = NULL;    }    if (!krb5_d_principal) {            /* Default principal */        /* a Null principal indicates the user should be prompted */        char * p = ck_krb5_getprincipal(krb5_d_cc);        if (!p || !(*p))          p = (char *)uidbuf;           /* Principal = user */                makestr(&krb5_d_principal,(p && p[0]) ? p : NULL);    }    makestr(&krb5_init.principal,krb5_d_principal);    for (i = 0; i <= KRB5_NUM_OF_ADDRS; i++) {        if (krb5_init.addrs[i])          free(krb5_init.addrs[i]);        krb5_init.addrs[i] = NULL;    }    for (i = 0; i <= KRB5_NUM_OF_ADDRS && krb5_d_addrs[i]; i++) {        makestr(&krb5_init.addrs[i],krb5_d_addrs[i]);    }    /* Kerberos 4 */    krb4_init.lifetime = krb4_d_lifetime;    krb4_init.preauth  = krb4_d_preauth;    makestr(&krb4_init.instance,krb4_d_instance);    if (!krb4_d_realm || !krb4_d_realm[0]) {/* Set default realm */        char * p;        p = ck_krb4_getrealm();                makestr(&krb4_d_realm,(p && p[0]) ? p : NULL);    }    makestr(&krb4_init.realm,krb4_d_realm);    if (krb4_init.password) {        memset(krb4_init.password,0xFF,strlen(krb4_init.password));        free(krb4_init.password);        krb4_init.password = NULL;    }    if (!krb4_d_principal) {            /* Default principal */        /* a Null principal indicates the user should be prompted */        char * p = ck_krb4_getprincipal();        if (!p || !(*p))          p = (char *)uidbuf;           /* Principal = user */        makestr(&(krb4_d_principal),(p && p[0]) ? p : NULL);    }    makestr(&(krb4_init.principal),krb4_d_principal);}/*  D O A U T H  --  AUTHENTICATE action routine  */intdoauth(cx) int cx; {                    /* AUTHENTICATE action routine */    int rc = 0;                         /* Return code */#ifdef CK_AUTHENTICATION#ifdef OS2    if (!ck_security_loaddll())         /* Load various DLLs */      return(rc);#endif /* OS2 */    if (krb_op.version == 4) {          /* Version = 4 */#ifdef COMMENT        sho_auth(AUTHTYPE_KERBEROS_V4);#endif /* COMMENT */        if (!ck_krb4_is_installed()) {            printf("?Kerberos 4 is not installed\n");            return(0);        }        switch (krb_action) {           /* Perform V4 functions */          case KRB_A_IN:                /* INIT */            rc |= !(ck_krb4_initTGT(&krb_op,&krb4_init) < 0);            break;          case KRB_A_DE:                /* DESTROY */            rc |= !(ck_krb4_destroy(&krb_op) < 0);            break;          case KRB_A_LC:                /* LIST-CREDENTIALS */            rc |= !(ck_krb4_list_creds(&krb_op) < 0);            break;        }    }    if (krb_op.version == 5) {          /* V5 functions */#ifdef COMMENT        sho_auth(AUTHTYPE_KERBEROS_V5);#endif /* COMMENT */        if (!ck_krb5_is_installed()) {            printf("?Kerberos 5 is not installed\n");            return(0);        }        switch (krb_action) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -