Home | History | Annotate | Download | only in libxml2

Lines Matching refs:ctxt

302     xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
308 if (ctxt->protocol != NULL) {
309 xmlFree(ctxt->protocol);
310 ctxt->protocol = NULL;
312 if (ctxt->hostname != NULL) {
313 xmlFree(ctxt->hostname);
314 ctxt->hostname = NULL;
316 if (ctxt->path != NULL) {
317 xmlFree(ctxt->path);
318 ctxt->path = NULL;
331 ctxt->protocol = xmlMemStrdup(uri->scheme);
332 ctxt->hostname = xmlMemStrdup(uri->server);
334 ctxt->path = xmlMemStrdup(uri->path);
336 ctxt->path = xmlMemStrdup("/");
338 ctxt->port = uri->port;
343 ctxt->user = xmlMemStrdup(uri->user);
345 ctxt->user = (char *)xmlStrndup((xmlChar *)uri->user,
347 ctxt->passwd = xmlMemStrdup(cptr+1);
371 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
376 if (ctxt == NULL)
378 if (ctxt->protocol == NULL)
380 if (ctxt->hostname == NULL)
391 if ((strcmp(ctxt->protocol, uri->scheme)) ||
392 (strcmp(ctxt->hostname, uri->server)) ||
393 ((uri->port != 0) && (ctxt->port != uri->port))) {
399 ctxt->port = uri->port;
401 if (ctxt->path != NULL) {
402 xmlFree(ctxt->path);
403 ctxt->path = NULL;
407 ctxt->path = xmlMemStrdup("/");
409 ctxt->path = xmlMemStrdup(uri->path);
509 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
510 if (ctxt == NULL) return;
511 if (ctxt->hostname != NULL) xmlFree(ctxt->hostname);
512 if (ctxt->protocol != NULL) xmlFree(ctxt->protocol);
513 if (ctxt->path != NULL) xmlFree(ctxt->path);
514 ctxt->passive = 1;
515 if (ctxt->controlFd != INVALID_SOCKET) closesocket(ctxt->controlFd);
516 ctxt->controlFd = INVALID_SOCKET;
517 ctxt->controlBufIndex = -1;
518 ctxt->controlBufUsed = -1;
519 xmlFree(ctxt);
567 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
571 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
573 if ((ctxt->controlBufIndex < 0) || (ctxt->controlBufIndex > FTP_BUF_SIZE)) {
577 ctxt->controlBufIndex);
582 if ((ctxt->controlBufUsed < 0) || (ctxt->controlBufUsed > FTP_BUF_SIZE)) {
586 ctxt->controlBufUsed);
590 if (ctxt->controlBufIndex > ctxt->controlBufUsed) {
594 ctxt->controlBufIndex, ctxt->controlBufUsed);
602 if (ctxt->controlBufIndex > 0) {
603 memmove(&ctxt->controlBuf[0], &ctxt->controlBuf[ctxt->controlBufIndex],
604 ctxt->controlBufUsed - ctxt->controlBufIndex);
605 ctxt->controlBufUsed -= ctxt->controlBufIndex;
606 ctxt->controlBufIndex = 0;
608 size = FTP_BUF_SIZE - ctxt->controlBufUsed;
612 "xmlNanoFTPGetMore : buffer full %d \n", ctxt->controlBufUsed);
620 if ((len = recv(ctxt->controlFd, &ctxt->controlBuf[ctxt->controlBufIndex],
623 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
624 ctxt->controlFd = INVALID_SOCKET;
630 ctxt->controlBufUsed, ctxt->controlBufUsed + len);
632 ctxt->controlBufUsed += len;
633 ctxt->controlBuf[ctxt->controlBufUsed] = 0;
647 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
652 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
663 if ((ctxt->controlBufUsed == 0) && (len == 0)) {
666 ptr = &ctxt->controlBuf[ctxt->controlBufIndex];
667 end = &ctxt->controlBuf[ctxt->controlBufUsed];
683 ctxt->controlBufAnswer = ptr - ctxt->controlBuf;
691 ctxt->controlBufIndex = ctxt->controlBufUsed;
698 ctxt->controlBufIndex = ptr - ctxt->controlBuf;
700 ptr = &ctxt->controlBuf[ctxt->controlBufIndex];
737 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
741 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
745 FD_SET(ctxt->controlFd, &rfd);
746 switch(select(ctxt->controlFd + 1, &rfd, NULL, NULL, &tv)) {
764 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
769 if (ctxt->user == NULL)
772 snprintf(buf, sizeof(buf), "USER %s\r\n", ctxt->user);
778 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
792 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
797 if (ctxt->passwd == NULL)
800 snprintf(buf, sizeof(buf), "PASS %s\r\n", ctxt->passwd);
806 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
826 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
830 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
837 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
856 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
862 if (ctxt == NULL)
864 if (ctxt->hostname == NULL)
873 port = ctxt->port;
878 memset (&ctxt->ftpAddr, 0, sizeof(ctxt->ftpAddr));
895 if (getaddrinfo (ctxt->hostname, NULL, &hints, &result) != 0) {
910 if (tmp->ai_addrlen > sizeof(ctxt->ftpAddr)) {
917 memcpy (&ctxt->ftpAddr, tmp->ai_addr, tmp->ai_addrlen);
918 ((struct sockaddr_in6 *) &ctxt->ftpAddr)->sin6_port = htons (port);
919 ctxt->controlFd = socket (AF_INET6, SOCK_STREAM, 0);
922 memcpy (&ctxt->ftpAddr, tmp->ai_addr, tmp->ai_addrlen);
923 ((struct sockaddr_in *) &ctxt->ftpAddr)->sin_port = htons (port);
924 ctxt->controlFd = socket (AF_INET, SOCK_STREAM, 0);
935 hp = gethostbyname (GETHOSTBYNAME_ARG_CAST ctxt->hostname);
941 sizeof(((struct sockaddr_in *)&ctxt->ftpAddr)->sin_addr)) {
949 ((struct sockaddr_in *)&ctxt->ftpAddr)->sin_family = AF_INET;
950 memcpy (&((struct sockaddr_in *)&ctxt->ftpAddr)->sin_addr,
952 ((struct sockaddr_in *)&ctxt->ftpAddr)->sin_port =
954 ctxt->controlFd = socket (AF_INET, SOCK_STREAM, 0);
958 if (ctxt->controlFd == INVALID_SOCKET) {
966 if (connect(ctxt->controlFd, (struct sockaddr *) &ctxt->ftpAddr,
969 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
970 ctxt->controlFd = INVALID_SOCKET;
977 res = xmlNanoFTPGetResponse(ctxt);
979 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
980 ctxt->controlFd = INVALID_SOCKET;
1033 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1036 closesocket(ctxt->controlFd);
1037 ctxt->controlFd = INVALID_SOCKET;
1040 res = xmlNanoFTPGetResponse(ctxt);
1055 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1058 closesocket(ctxt->controlFd);
1059 ctxt->controlFd = INVALID_SOCKET;
1062 res = xmlNanoFTPGetResponse(ctxt);
1064 closesocket(ctxt->controlFd);
1065 ctxt->controlFd = INVALID_SOCKET;
1075 closesocket(ctxt->controlFd);
1076 ctxt->controlFd = INVALID_SOCKET;
1090 snprintf(buf, sizeof(buf), "SITE %s\r\n", ctxt->hostname);
1096 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1099 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1100 ctxt->controlFd = INVALID_SOCKET;
1103 res = xmlNanoFTPGetResponse(ctxt);
1110 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1111 ctxt->controlFd = INVALID_SOCKET;
1116 if (ctxt->user == NULL)
1118 ctxt->hostname);
1121 ctxt->user, ctxt->hostname);
1127 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1130 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1131 ctxt->controlFd = INVALID_SOCKET;
1134 res = xmlNanoFTPGetResponse(ctxt);
1140 if (ctxt->passwd == NULL)
1143 snprintf(buf, sizeof(buf), "PASS %s\r\n", ctxt->passwd);
1149 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1152 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1153 ctxt->controlFd = INVALID_SOCKET;
1156 res = xmlNanoFTPGetResponse(ctxt);
1163 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1164 ctxt->controlFd = INVALID_SOCKET;
1173 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1174 ctxt->controlFd = INVALID_SOCKET;
1181 res = xmlNanoFTPSendUser(ctxt);
1183 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1184 ctxt->controlFd = INVALID_SOCKET;
1187 res = xmlNanoFTPGetResponse(ctxt);
1198 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1199 ctxt->controlFd = INVALID_SOCKET;
1202 res = xmlNanoFTPSendPasswd(ctxt);
1204 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1205 ctxt->controlFd = INVALID_SOCKET;
1208 res = xmlNanoFTPGetResponse(ctxt);
1220 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1221 ctxt->controlFd = INVALID_SOCKET;
1240 xmlNanoFTPCtxtPtr ctxt;
1248 ctxt = (xmlNanoFTPCtxtPtr) xmlNanoFTPNewCtxt(NULL);
1249 if (ctxt == NULL)
1251 ctxt->hostname = xmlMemStrdup(server);
1252 if (ctxt->hostname == NULL) {
1253 xmlNanoFTPFreeCtxt(ctxt);
1257 ctxt->port = port;
1258 res = xmlNanoFTPConnect(ctxt);
1260 xmlNanoFTPFreeCtxt(ctxt);
1263 return(ctxt);
1278 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1283 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
1299 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1304 res = xmlNanoFTPGetResponse(ctxt);
1327 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1332 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET) ||
1350 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1355 res = xmlNanoFTPGetResponse(ctxt);
1377 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1390 if (ctxt == NULL) return INVALID_SOCKET;
1394 if ((ctxt->ftpAddr).ss_family == AF_INET6) {
1395 ctxt->dataFd = socket (AF_INET6, SOCK_STREAM, IPPROTO_TCP);
1401 ctxt->dataFd = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);
1406 if (ctxt->dataFd == INVALID_SOCKET) {
1411 if (ctxt->passive) {
1413 if ((ctxt->ftpAddr).ss_family == AF_INET6)
1422 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1425 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1431 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1437 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1438 ctxt->passive = 0;
1441 cur = &ctxt->controlBuf[ctxt->controlBufAnswer];
1444 if ((ctxt->ftpAddr).ss_family == AF_INET6) {
1448 if (ctxt->dataFd != INVALID_SOCKET) {
1449 closesocket (ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1453 memcpy (&((struct sockaddr_in6 *)&dataAddr)->sin6_addr, &((struct sockaddr_in6 *)&ctxt->ftpAddr)->sin6_addr, sizeof(struct in6_addr));
1463 if (ctxt->dataFd != INVALID_SOCKET) {
1464 closesocket (ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1473 if (connect(ctxt->dataFd, (struct sockaddr *) &dataAddr, dataAddrLen) < 0) {
1475 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1479 getsockname(ctxt->dataFd, (struct sockaddr *) &dataAddr, &dataAddrLen);
1481 if ((ctxt->ftpAddr).ss_family == AF_INET6)
1487 if (bind(ctxt->dataFd, (struct sockaddr *) &dataAddr, dataAddrLen) < 0) {
1489 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1492 getsockname(ctxt->dataFd, (struct sockaddr *) &dataAddr, &dataAddrLen);
1494 if (listen(ctxt->dataFd, 1) < 0) {
1496 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1500 if ((ctxt->ftpAddr).ss_family == AF_INET6) {
1523 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1526 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1529 res = xmlNanoFTPGetResponse(ctxt);
1531 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1535 return(ctxt->dataFd);
1550 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1555 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
1557 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1561 FD_SET(ctxt->controlFd, &rfd);
1563 FD_SET(ctxt->controlFd, &efd);
1564 res = select(ctxt->controlFd + 1, &rfd, NULL, &efd, &tv);
1569 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1577 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1579 res = xmlNanoFTPGetResponse(ctxt);
1581 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1730 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1737 if (ctxt == NULL) return (-1);
1739 if (xmlNanoFTPCwd(ctxt, ctxt->path) < 1)
1741 ctxt->dataFd = xmlNanoFTPGetConnection(ctxt);
1742 if (ctxt->dataFd == INVALID_SOCKET)
1747 if (xmlNanoFTPCwd(ctxt, ctxt->path) < 1)
1750 ctxt->dataFd = xmlNanoFTPGetConnection(ctxt);
1751 if (ctxt->dataFd == INVALID_SOCKET)
1760 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1763 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1766 res = xmlNanoFTPReadResponse(ctxt);
1768 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1776 FD_SET(ctxt->dataFd, &rfd);
1778 FD_SET(ctxt->dataFd, &efd);
1779 res = select(ctxt->dataFd + 1, &rfd, NULL, &efd, &tv);
1784 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1788 res = xmlNanoFTPCheckResponse(ctxt);
1790 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1791 ctxt->dataFd = INVALID_SOCKET;
1795 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1802 if ((len = recv(ctxt->dataFd, &buf[indx], sizeof(buf) - (indx + 1), 0)) < 0) {
1804 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1805 ctxt->dataFd = INVALID_SOCKET;
1822 xmlNanoFTPCloseConnection(ctxt);
1839 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1844 if ((filename == NULL) && (ctxt->path == NULL))
1846 ctxt->dataFd = xmlNanoFTPGetConnection(ctxt);
1847 if (ctxt->dataFd == INVALID_SOCKET)
1855 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1858 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1861 res = xmlNanoFTPReadResponse(ctxt);
1863 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1867 snprintf(buf, sizeof(buf), "RETR %s\r\n", ctxt->path);
1875 res = send(ctxt->controlFd, SEND_ARG2_CAST buf, len, 0);
1878 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1881 res = xmlNanoFTPReadResponse(ctxt);
1883 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1886 return(ctxt->dataFd);
1905 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1911 if (ctxt == NULL) return(-1);
1912 if ((filename == NULL) && (ctxt->path == NULL))
1916 if (xmlNanoFTPGetSocket(ctxt, filename) == INVALID_SOCKET)
1923 FD_SET(ctxt->dataFd, &rfd);
1924 res = select(ctxt->dataFd + 1, &rfd, NULL, NULL, &tv);
1929 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1933 res = xmlNanoFTPCheckResponse(ctxt);
1935 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1936 ctxt->dataFd = INVALID_SOCKET;
1940 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1946 if ((len = recv(ctxt->dataFd, buf, sizeof(buf), 0)) < 0) {
1949 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1955 return(xmlNanoFTPCloseConnection(ctxt));
1972 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1975 if (ctxt->dataFd == INVALID_SOCKET) return(0);
1979 len = recv(ctxt->dataFd, dest, len, 0);
1983 xmlNanoFTPCloseConnection(ctxt);
2002 xmlNanoFTPCtxtPtr ctxt;
2009 ctxt = (xmlNanoFTPCtxtPtr) xmlNanoFTPNewCtxt(URL);
2010 if (ctxt == NULL) return(NULL);
2011 if (xmlNanoFTPConnect(ctxt) < 0) {
2012 xmlNanoFTPFreeCtxt(ctxt);
2015 sock = xmlNanoFTPGetSocket(ctxt, ctxt->path);
2017 xmlNanoFTPFreeCtxt(ctxt);
2020 return(ctxt);
2034 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
2036 if (ctxt == NULL)
2039 if (ctxt->dataFd != INVALID_SOCKET) {
2040 closesocket(ctxt->dataFd);
2041 ctxt->dataFd = INVALID_SOCKET;
2043 if (ctxt->controlFd != INVALID_SOCKET) {
2044 xmlNanoFTPQuit(ctxt);
2045 closesocket(ctxt->controlFd);
2046 ctxt->controlFd = INVALID_SOCKET;
2048 xmlNanoFTPFreeCtxt(ctxt);
2076 void *ctxt;
2082 ctxt = xmlNanoFTPNewCtxt(argv[1]);
2083 if (xmlNanoFTPConnect(ctxt) < 0) {
2091 ctxt = xmlNanoFTPConnectTo("localhost", 0);
2092 if (ctxt == NULL) {
2097 xmlNanoFTPList(ctxt, ftpList, NULL, tstfile);
2100 if (xmlNanoFTPGet(ctxt, ftpData, (void *) output, tstfile) < 0)
2105 xmlNanoFTPClose(ctxt);