int l = min(4 - c->u.a.lensofar, len);
unsigned int l = min(4 - c->u.a.lensofar, len);
static void ssh1_msg_channel_data(Ssh ssh, struct Packet *pktin){    /* Data sent down one of our channels. */    int i = ssh_pkt_getuint32(pktin);    char *p;    int len;    struct ssh_channel *c;    ssh_pkt_getstring(pktin, &p, &len);    c = find234(ssh->channels, &i, ssh_channelfind);    if (c) {	int bufsize = 0;	switch (c->type) {	  case CHAN_X11:	    bufsize = x11_send(c->u.x11.s, p, len);	    break;	  case CHAN_SOCKDATA:	    bufsize = pfd_send(c->u.pfd.s, p, len);	    break;	  case CHAN_AGENT:	    /* Data for an agent message. Buffer it. */	    while (len > 0) {		if (c->u.a.lensofar < 4) {		    int l = min(4 - c->u.a.lensofar, len);		    memcpy(c->u.a.msglen + c->u.a.lensofar, p,			   l);		    p += l;		    len -= l;		    c->u.a.lensofar += l;		}		if (c->u.a.lensofar == 4) {		    c->u.a.totallen =			4 + GET_32BIT(c->u.a.msglen);		    c->u.a.message = snewn(c->u.a.totallen,					   unsigned char);		    memcpy(c->u.a.message, c->u.a.msglen, 4);		}		if (c->u.a.lensofar >= 4 && len > 0) {		    int l =			min(c->u.a.totallen - c->u.a.lensofar,			    len);		    memcpy(c->u.a.message + c->u.a.lensofar, p,			   l);		    p += l;		    len -= l;		    c->u.a.lensofar += l;		}		if (c->u.a.lensofar == c->u.a.totallen) {		    void *reply;		    int replylen;		    if (agent_query(c->u.a.message,				    c->u.a.totallen,				    &reply, &replylen,				    ssh_agentf_callback, c))			ssh_agentf_callback(c, reply, replylen);		    sfree(c->u.a.message);		    c->u.a.lensofar = 0;		}	    }	    bufsize = 0;   /* agent channels never back up */	    break;	}	if (!c->v.v1.throttling && bufsize > SSH1_BUFFER_LIMIT) {	    c->v.v1.throttling = 1;	    ssh1_throttle(ssh, +1);	}    }}