Home | History | Annotate | Download | only in libxml2

Lines Matching refs:ctxt

294     xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
300 if (ctxt->protocol != NULL) {
301 xmlFree(ctxt->protocol);
302 ctxt->protocol = NULL;
304 if (ctxt->hostname != NULL) {
305 xmlFree(ctxt->hostname);
306 ctxt->hostname = NULL;
308 if (ctxt->path != NULL) {
309 xmlFree(ctxt->path);
310 ctxt->path = NULL;
323 ctxt->protocol = xmlMemStrdup(uri->scheme);
324 ctxt->hostname = xmlMemStrdup(uri->server);
326 ctxt->path = xmlMemStrdup(uri->path);
328 ctxt->path = xmlMemStrdup("/");
330 ctxt->port = uri->port;
335 ctxt->user = xmlMemStrdup(uri->user);
337 ctxt->user = (char *)xmlStrndup((xmlChar *)uri->user,
339 ctxt->passwd = xmlMemStrdup(cptr+1);
363 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
368 if (ctxt == NULL)
370 if (ctxt->protocol == NULL)
372 if (ctxt->hostname == NULL)
383 if ((strcmp(ctxt->protocol, uri->scheme)) ||
384 (strcmp(ctxt->hostname, uri->server)) ||
385 ((uri->port != 0) && (ctxt->port != uri->port))) {
391 ctxt->port = uri->port;
393 if (ctxt->path != NULL) {
394 xmlFree(ctxt->path);
395 ctxt->path = NULL;
399 ctxt->path = xmlMemStrdup("/");
401 ctxt->path = xmlMemStrdup(uri->path);
501 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
502 if (ctxt == NULL) return;
503 if (ctxt->hostname != NULL) xmlFree(ctxt->hostname);
504 if (ctxt->protocol != NULL) xmlFree(ctxt->protocol);
505 if (ctxt->path != NULL) xmlFree(ctxt->path);
506 if (ctxt->user != NULL) xmlFree(ctxt->user);
507 if (ctxt->passwd != NULL) xmlFree(ctxt->passwd);
508 ctxt->passive = 1;
509 if (ctxt->controlFd != INVALID_SOCKET) closesocket(ctxt->controlFd);
510 ctxt->controlFd = INVALID_SOCKET;
511 ctxt->controlBufIndex = -1;
512 ctxt->controlBufUsed = -1;
513 xmlFree(ctxt);
561 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
565 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
567 if ((ctxt->controlBufIndex < 0) || (ctxt->controlBufIndex > FTP_BUF_SIZE)) {
571 ctxt->controlBufIndex);
576 if ((ctxt->controlBufUsed < 0) || (ctxt->controlBufUsed > FTP_BUF_SIZE)) {
580 ctxt->controlBufUsed);
584 if (ctxt->controlBufIndex > ctxt->controlBufUsed) {
588 ctxt->controlBufIndex, ctxt->controlBufUsed);
596 if (ctxt->controlBufIndex > 0) {
597 memmove(&ctxt->controlBuf[0], &ctxt->controlBuf[ctxt->controlBufIndex],
598 ctxt->controlBufUsed - ctxt->controlBufIndex);
599 ctxt->controlBufUsed -= ctxt->controlBufIndex;
600 ctxt->controlBufIndex = 0;
602 size = FTP_BUF_SIZE - ctxt->controlBufUsed;
606 "xmlNanoFTPGetMore : buffer full %d \n", ctxt->controlBufUsed);
614 if ((len = recv(ctxt->controlFd, &ctxt->controlBuf[ctxt->controlBufIndex],
617 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
618 ctxt->controlFd = INVALID_SOCKET;
624 ctxt->controlBufUsed, ctxt->controlBufUsed + len);
626 ctxt->controlBufUsed += len;
627 ctxt->controlBuf[ctxt->controlBufUsed] = 0;
641 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
646 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
657 if ((ctxt->controlBufUsed == 0) && (len == 0)) {
660 ptr = &ctxt->controlBuf[ctxt->controlBufIndex];
661 end = &ctxt->controlBuf[ctxt->controlBufUsed];
677 ctxt->controlBufAnswer = ptr - ctxt->controlBuf;
685 ctxt->controlBufIndex = ctxt->controlBufUsed;
692 ctxt->controlBufIndex = ptr - ctxt->controlBuf;
694 ptr = &ctxt->controlBuf[ctxt->controlBufIndex];
731 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
735 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
739 FD_SET(ctxt->controlFd, &rfd);
740 switch(select(ctxt->controlFd + 1, &rfd, NULL, NULL, &tv)) {
758 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
763 if (ctxt->user == NULL)
766 snprintf(buf, sizeof(buf), "USER %s\r\n", ctxt->user);
772 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
786 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
791 if (ctxt->passwd == NULL)
794 snprintf(buf, sizeof(buf), "PASS %s\r\n", ctxt->passwd);
800 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
820 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
824 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
831 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
850 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
856 if (ctxt == NULL)
858 if (ctxt->hostname == NULL)
867 port = ctxt->port;
872 memset (&ctxt->ftpAddr, 0, sizeof(ctxt->ftpAddr));
889 if (getaddrinfo (ctxt->hostname, NULL, &hints, &result) != 0) {
904 if ((size_t)tmp->ai_addrlen > sizeof(ctxt->ftpAddr)) {
911 memcpy (&ctxt->ftpAddr, tmp->ai_addr, tmp->ai_addrlen);
912 ((struct sockaddr_in6 *) &ctxt->ftpAddr)->sin6_port = htons (port);
913 ctxt->controlFd = socket (AF_INET6, SOCK_STREAM, 0);
916 memcpy (&ctxt->ftpAddr, tmp->ai_addr, tmp->ai_addrlen);
917 ((struct sockaddr_in *) &ctxt->ftpAddr)->sin_port = htons (port);
918 ctxt->controlFd = socket (AF_INET, SOCK_STREAM, 0);
929 hp = gethostbyname (GETHOSTBYNAME_ARG_CAST ctxt->hostname);
935 sizeof(((struct sockaddr_in *)&ctxt->ftpAddr)->sin_addr)) {
943 ((struct sockaddr_in *)&ctxt->ftpAddr)->sin_family = AF_INET;
944 memcpy (&((struct sockaddr_in *)&ctxt->ftpAddr)->sin_addr,
946 ((struct sockaddr_in *)&ctxt->ftpAddr)->sin_port =
948 ctxt->controlFd = socket (AF_INET, SOCK_STREAM, 0);
952 if (ctxt->controlFd == INVALID_SOCKET) {
960 if (connect(ctxt->controlFd, (struct sockaddr *) &ctxt->ftpAddr,
963 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
964 ctxt->controlFd = INVALID_SOCKET;
971 res = xmlNanoFTPGetResponse(ctxt);
973 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
974 ctxt->controlFd = INVALID_SOCKET;
1027 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1030 closesocket(ctxt->controlFd);
1031 ctxt->controlFd = INVALID_SOCKET;
1034 res = xmlNanoFTPGetResponse(ctxt);
1050 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1053 closesocket(ctxt->controlFd);
1054 ctxt->controlFd = INVALID_SOCKET;
1057 res = xmlNanoFTPGetResponse(ctxt);
1059 closesocket(ctxt->controlFd);
1060 ctxt->controlFd = INVALID_SOCKET;
1070 closesocket(ctxt->controlFd);
1071 ctxt->controlFd = INVALID_SOCKET;
1085 snprintf(buf, sizeof(buf), "SITE %s\r\n", ctxt->hostname);
1091 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1094 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1095 ctxt->controlFd = INVALID_SOCKET;
1098 res = xmlNanoFTPGetResponse(ctxt);
1105 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1106 ctxt->controlFd = INVALID_SOCKET;
1112 if (ctxt->user == NULL)
1114 ctxt->hostname);
1117 ctxt->user, ctxt->hostname);
1123 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1126 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1127 ctxt->controlFd = INVALID_SOCKET;
1130 res = xmlNanoFTPGetResponse(ctxt);
1136 if (ctxt->passwd == NULL)
1139 snprintf(buf, sizeof(buf), "PASS %s\r\n", ctxt->passwd);
1145 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1148 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1149 ctxt->controlFd = INVALID_SOCKET;
1152 res = xmlNanoFTPGetResponse(ctxt);
1159 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1160 ctxt->controlFd = INVALID_SOCKET;
1170 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1171 ctxt->controlFd = INVALID_SOCKET;
1178 res = xmlNanoFTPSendUser(ctxt);
1180 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1181 ctxt->controlFd = INVALID_SOCKET;
1184 res = xmlNanoFTPGetResponse(ctxt);
1195 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1196 ctxt->controlFd = INVALID_SOCKET;
1199 res = xmlNanoFTPSendPasswd(ctxt);
1201 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1202 ctxt->controlFd = INVALID_SOCKET;
1205 res = xmlNanoFTPGetResponse(ctxt);
1218 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1219 ctxt->controlFd = INVALID_SOCKET;
1238 xmlNanoFTPCtxtPtr ctxt;
1246 ctxt = (xmlNanoFTPCtxtPtr) xmlNanoFTPNewCtxt(NULL);
1247 if (ctxt == NULL)
1249 ctxt->hostname = xmlMemStrdup(server);
1250 if (ctxt->hostname == NULL) {
1251 xmlNanoFTPFreeCtxt(ctxt);
1255 ctxt->port = port;
1256 res = xmlNanoFTPConnect(ctxt);
1258 xmlNanoFTPFreeCtxt(ctxt);
1261 return(ctxt);
1276 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1281 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
1297 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1302 res = xmlNanoFTPGetResponse(ctxt);
1325 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1330 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET) ||
1348 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1353 res = xmlNanoFTPGetResponse(ctxt);
1375 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1388 if (ctxt == NULL) return INVALID_SOCKET;
1392 if ((ctxt->ftpAddr).ss_family == AF_INET6) {
1393 ctxt->dataFd = socket (AF_INET6, SOCK_STREAM, IPPROTO_TCP);
1399 ctxt->dataFd = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);
1404 if (ctxt->dataFd == INVALID_SOCKET) {
1409 if (ctxt->passive) {
1411 if ((ctxt->ftpAddr).ss_family == AF_INET6)
1420 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1423 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1429 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1435 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1436 ctxt->passive = 0;
1439 cur = &ctxt->controlBuf[ctxt->controlBufAnswer];
1442 if ((ctxt->ftpAddr).ss_family == AF_INET6) {
1446 if (ctxt->dataFd != INVALID_SOCKET) {
1447 closesocket (ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1451 memcpy (&((struct sockaddr_in6 *)&dataAddr)->sin6_addr, &((struct sockaddr_in6 *)&ctxt->ftpAddr)->sin6_addr, sizeof(struct in6_addr));
1461 if (ctxt->dataFd != INVALID_SOCKET) {
1462 closesocket (ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1471 if (connect(ctxt->dataFd, (struct sockaddr *) &dataAddr, dataAddrLen) < 0) {
1473 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1477 getsockname(ctxt->dataFd, (struct sockaddr *) &dataAddr, &dataAddrLen);
1479 if ((ctxt->ftpAddr).ss_family == AF_INET6)
1485 if (bind(ctxt->dataFd, (struct sockaddr *) &dataAddr, dataAddrLen) < 0) {
1487 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1490 getsockname(ctxt->dataFd, (struct sockaddr *) &dataAddr, &dataAddrLen);
1492 if (listen(ctxt->dataFd, 1) < 0) {
1494 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1498 if ((ctxt->ftpAddr).ss_family == AF_INET6) {
1521 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1524 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1527 res = xmlNanoFTPGetResponse(ctxt);
1529 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1533 return(ctxt->dataFd);
1548 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1553 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
1555 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1559 FD_SET(ctxt->controlFd, &rfd);
1561 FD_SET(ctxt->controlFd, &efd);
1562 res = select(ctxt->controlFd + 1, &rfd, NULL, &efd, &tv);
1567 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1575 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1577 res = xmlNanoFTPGetResponse(ctxt);
1579 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1728 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1735 if (ctxt == NULL) return (-1);
1737 if (xmlNanoFTPCwd(ctxt, ctxt->path) < 1)
1739 ctxt->dataFd = xmlNanoFTPGetConnection(ctxt);
1740 if (ctxt->dataFd == INVALID_SOCKET)
1745 if (xmlNanoFTPCwd(ctxt, ctxt->path) < 1)
1748 ctxt->dataFd = xmlNanoFTPGetConnection(ctxt);
1749 if (ctxt->dataFd == INVALID_SOCKET)
1758 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1761 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1764 res = xmlNanoFTPReadResponse(ctxt);
1766 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1774 FD_SET(ctxt->dataFd, &rfd);
1776 FD_SET(ctxt->dataFd, &efd);
1777 res = select(ctxt->dataFd + 1, &rfd, NULL, &efd, &tv);
1782 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1786 res = xmlNanoFTPCheckResponse(ctxt);
1788 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1789 ctxt->dataFd = INVALID_SOCKET;
1793 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1800 if ((len = recv(ctxt->dataFd, &buf[indx], sizeof(buf) - (indx + 1), 0)) < 0) {
1802 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1803 ctxt->dataFd = INVALID_SOCKET;
1820 xmlNanoFTPCloseConnection(ctxt);
1837 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1842 if ((filename == NULL) && (ctxt->path == NULL))
1844 ctxt->dataFd = xmlNanoFTPGetConnection(ctxt);
1845 if (ctxt->dataFd == INVALID_SOCKET)
1853 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1856 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1859 res = xmlNanoFTPReadResponse(ctxt);
1861 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1865 snprintf(buf, sizeof(buf), "RETR %s\r\n", ctxt->path);
1873 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1876 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1879 res = xmlNanoFTPReadResponse(ctxt);
1881 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1884 return(ctxt->dataFd);
1903 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1909 if (ctxt == NULL) return(-1);
1910 if ((filename == NULL) && (ctxt->path == NULL))
1914 if (xmlNanoFTPGetSocket(ctxt, filename) == INVALID_SOCKET)
1921 FD_SET(ctxt->dataFd, &rfd);
1922 res = select(ctxt->dataFd + 1, &rfd, NULL, NULL, &tv);
1927 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1931 res = xmlNanoFTPCheckResponse(ctxt);
1933 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1934 ctxt->dataFd = INVALID_SOCKET;
1938 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1944 if ((len = recv(ctxt->dataFd, buf, sizeof(buf), 0)) < 0) {
1947 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1953 return(xmlNanoFTPCloseConnection(ctxt));
1970 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1973 if (ctxt->dataFd == INVALID_SOCKET) return(0);
1977 len = recv(ctxt->dataFd, dest, len, 0);
1981 xmlNanoFTPCloseConnection(ctxt);
2000 xmlNanoFTPCtxtPtr ctxt;
2007 ctxt = (xmlNanoFTPCtxtPtr) xmlNanoFTPNewCtxt(URL);
2008 if (ctxt == NULL) return(NULL);
2009 if (xmlNanoFTPConnect(ctxt) < 0) {
2010 xmlNanoFTPFreeCtxt(ctxt);
2013 sock = xmlNanoFTPGetSocket(ctxt, ctxt->path);
2015 xmlNanoFTPFreeCtxt(ctxt);
2018 return(ctxt);
2032 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
2034 if (ctxt == NULL)
2037 if (ctxt->dataFd != INVALID_SOCKET) {
2038 closesocket(ctxt->dataFd);
2039 ctxt->dataFd = INVALID_SOCKET;
2041 if (ctxt->controlFd != INVALID_SOCKET) {
2042 xmlNanoFTPQuit(ctxt);
2043 closesocket(ctxt->controlFd);
2044 ctxt->controlFd = INVALID_SOCKET;
2046 xmlNanoFTPFreeCtxt(ctxt);
2074 void *ctxt;
2080 ctxt = xmlNanoFTPNewCtxt(argv[1]);
2081 if (xmlNanoFTPConnect(ctxt) < 0) {
2089 ctxt = xmlNanoFTPConnectTo("localhost", 0);
2090 if (ctxt == NULL) {
2095 xmlNanoFTPList(ctxt, ftpList, NULL, tstfile);
2098 if (xmlNanoFTPGet(ctxt, ftpData, (void *) output, tstfile) < 0)
2103 xmlNanoFTPClose(ctxt);