Changeset 218
- Timestamp:
- 04/14/08 23:22:48 (5 months ago)
- Location:
- trunk
- Files:
-
- 21 added
- 1 removed
- 185 modified
- 2 moved
-
arch (added)
-
arch/darwin-arm (added)
-
arch/darwin-arm/target (added)
-
arch/iphoneos-arm (added)
-
arch/iphoneos-arm/target (added)
-
architect.sh (added)
-
bootstrap.sh (modified) (4 diffs)
-
build.sh (modified) (1 diff)
-
clean.sh (added)
-
construct.sh (modified) (3 diffs)
-
control.sh (modified) (2 diffs)
-
data/adv-cmds/make.sh (modified) (1 diff)
-
data/apr/make.sh (modified) (1 diff)
-
data/apr-util/make.sh (modified) (1 diff)
-
data/apr-util/_metadata/sqlite3.dep (added)
-
data/apt/cfnetwork.diff (modified) (11 diffs)
-
data/apt/make.sh (modified) (1 diff)
-
data/apt/mdns.diff (modified) (16 diffs)
-
data/apt/ostable.diff (moved) (moved from trunk/data/apt/darwin.diff) (1 diff)
-
data/autossh/make.sh (modified) (1 diff)
-
data/bash/make.sh (modified) (1 diff)
-
data/bash/mdns.diff (modified) (2 diffs)
-
data/basic-cmds/make.sh (modified) (1 diff)
-
data/bc/make.sh (modified) (1 diff)
-
data/berkeleydb/make.sh (modified) (1 diff)
-
data/bind/gen.diff (deleted)
-
data/bind/make.sh (modified) (1 diff)
-
data/bison/make.sh (modified) (1 diff)
-
data/bitchx/make.sh (modified) (1 diff)
-
data/bitchx/mdns.diff (modified) (2 diffs)
-
data/boost_/make.sh (modified) (1 diff)
-
data/bootstrap-cmds/make.sh (modified) (1 diff)
-
data/bzip2/make.sh (modified) (1 diff)
-
data/classpath/make.sh (modified) (1 diff)
-
data/coreutils/make.sh (modified) (1 diff)
-
data/cpio/make.sh (modified) (1 diff)
-
data/csu/make.sh (modified) (1 diff)
-
data/curl/make.sh (modified) (1 diff)
-
data/curl/mdns.diff (modified) (2 diffs)
-
data/cvs/make.sh (modified) (1 diff)
-
data/cvs/mdns.diff (modified) (2 diffs)
-
data/cydia/cydia-1.0.2385.tgz (moved) (moved from trunk/data/cydia/cydia-1.0.2383.tgz)
-
data/cydia/make.sh (modified) (1 diff)
-
data/cydia/_metadata/version (modified) (1 diff)
-
data/darwintools/make.sh (modified) (1 diff)
-
data/developer-cmds/make.sh (modified) (1 diff)
-
data/dict/make.sh (modified) (1 diff)
-
data/diffutils/make.sh (modified) (1 diff)
-
data/diskdev-cmds/make.sh (modified) (1 diff)
-
data/dmg2img/make.sh (modified) (1 diff)
-
data/dpkg/make.sh (modified) (1 diff)
-
data/dpkg/telesphoreo.diff (added)
-
data/ed/make.sh (modified) (1 diff)
-
data/expat/make.sh (modified) (1 diff)
-
data/faac/make.sh (modified) (1 diff)
-
data/faad/make.sh (modified) (1 diff)
-
data/fastjar/make.sh (modified) (1 diff)
-
data/file-cmds/make.sh (modified) (1 diff)
-
data/file/make.sh (modified) (1 diff)
-
data/findutils/make.sh (modified) (1 diff)
-
data/flex/make.sh (modified) (1 diff)
-
data/flite/make.sh (modified) (1 diff)
-
data/gawk/make.sh (modified) (1 diff)
-
data/gcrypt/make.sh (modified) (1 diff)
-
data/gettext/make.sh (modified) (1 diff)
-
data/glib/make.sh (modified) (1 diff)
-
data/gnupg2/make.sh (modified) (1 diff)
-
data/gnupg/make.sh (modified) (1 diff)
-
data/gnupth/make.sh (modified) (1 diff)
-
data/grep/make.sh (modified) (1 diff)
-
data/gzip/make.sh (modified) (1 diff)
-
data/ice/make.sh (modified) (1 diff)
-
data/indent/make.sh (modified) (1 diff)
-
data/inetutils/make.sh (modified) (1 diff)
-
data/inetutils/mdns.diff (modified) (22 diffs)
-
data/inputproto/make.sh (modified) (1 diff)
-
data/iokittools/make.sh (modified) (1 diff)
-
data/iphone-gcc/make.sh (modified) (2 diffs)
-
data/irssi/make.sh (modified) (1 diff)
-
data/irssi/mdns.diff (modified) (2 diffs)
-
data/jamvm/make.sh (modified) (1 diff)
-
data/jamvm/mdns.diff (modified) (2 diffs)
-
data/javasqlite/make.sh (modified) (1 diff)
-
data/jikes/make.sh (modified) (1 diff)
-
data/kbproto/make.sh (modified) (1 diff)
-
data/kext-tools/make.sh (modified) (1 diff)
-
data/krb5/make.sh (modified) (1 diff)
-
data/less/make.sh (modified) (1 diff)
-
data/libarchive/make.sh (modified) (1 diff)
-
data/libassuan/make.sh (modified) (1 diff)
-
data/libdict/make.sh (modified) (1 diff)
-
data/libffi/assembler.diff (modified) (1 diff)
-
data/libffi/make.sh (modified) (1 diff)
-
data/libffi/private.diff (modified) (1 diff)
-
data/libgcc (added)
-
data/libgcc/make.sh (added)
-
data/libgcc/_metadata (added)
-
data/libgcc/_metadata/description (added)
-
data/libgcc/_metadata/license (added)
-
data/libgcc/_metadata/maintainer (added)
-
data/libgcc/_metadata/priority (added)
-
data/libgcc/_metadata/section (added)
-
data/libgcc/_metadata/version (added)
-
data/libgpg-error/make.sh (modified) (1 diff)
-
data/libksba/make.sh (modified) (1 diff)
-
data/libpcap/make.sh (modified) (1 diff)
-
data/libresolv/make.sh (modified) (1 diff)
-
data/libutil/make.sh (modified) (1 diff)
-
data/libxml2/make.sh (modified) (1 diff)
-
data/lighttpd/make.sh (modified) (1 diff)
-
data/links/make.sh (modified) (1 diff)
-
data/links/mdns.diff (modified) (2 diffs)
-
data/lynx/make.sh (modified) (1 diff)
-
data/lynx/mdns.diff (modified) (2 diffs)
-
data/m4/make.sh (modified) (1 diff)
-
data/make/make.sh (modified) (1 diff)
-
data/_/make.sh (modified) (1 diff)
-
data/minicom/make.sh (modified) (1 diff)
-
data/mobileterminal/make.sh (modified) (1 diff)
-
data/nail/make.sh (modified) (1 diff)
-
data/nano/make.sh (modified) (1 diff)
-
data/ncftp/make.sh (modified) (1 diff)
-
data/ncftp/mdns.diff (modified) (2 diffs)
-
data/ncurses/make.sh (modified) (1 diff)
-
data/neon/make.sh (modified) (1 diff)
-
data/netcat/make.sh (modified) (1 diff)
-
data/netcat/mdns.diff (modified) (2 diffs)
-
data/network-cmds/make.sh (modified) (1 diff)
-
data/ngrep/make.sh (modified) (1 diff)
-
data/nmap/make.sh (modified) (1 diff)
-
data/nvi/make.sh (modified) (1 diff)
-
data/odcctools/make.sh (modified) (1 diff)
-
data/ogg/make.sh (modified) (1 diff)
-
data/openssh/make.sh (modified) (1 diff)
-
data/openssl/make.sh (modified) (1 diff)
-
data/p7zip/make.sh (modified) (1 diff)
-
data/patch/make.sh (modified) (1 diff)
-
data/pcre/make.sh (modified) (1 diff)
-
data/png/make.sh (modified) (1 diff)
-
data/psmisc_/make.sh (modified) (1 diff)
-
data/pthread-stubs/make.sh (modified) (1 diff)
-
data/pyobjc/make.sh (modified) (1 diff)
-
data/rdesktop/make.sh (modified) (1 diff)
-
data/readline/make.sh (modified) (1 diff)
-
data/rpl/make.sh (modified) (1 diff)
-
data/rsync/make.sh (modified) (1 diff)
-
data/rubygems/make.sh (modified) (1 diff)
-
data/ruby/make.sh (modified) (1 diff)
-
data/ruby/mdns.diff (modified) (2 diffs)
-
data/rubyobjc_/make.sh (modified) (1 diff)
-
data/rzip/make.sh (modified) (1 diff)
-
data/screen/make.sh (modified) (1 diff)
-
data/sed/make.sh (modified) (1 diff)
-
data/sgrep/make.sh (modified) (1 diff)
-
data/shell-cmds/make.sh (modified) (1 diff)
-
data/sm/make.sh (modified) (1 diff)
-
data/spidermonkey/make.sh (modified) (1 diff)
-
data/spidermonkey/mdns.diff (modified) (2 diffs)
-
data/sqlite3/make.sh (modified) (1 diff)
-
data/sqlite3/_metadata/priority (modified) (1 diff)
-
data/srelay/make.sh (modified) (1 diff)
-
data/stunnel/make.sh (modified) (1 diff)
-
data/subversion/make.sh (modified) (1 diff)
-
data/subversion/mdns.diff (modified) (14 diffs)
-
data/sudo/make.sh (modified) (1 diff)
-
data/sudo/_metadata/conffiles (added)
-
data/system-cmds/make.sh (modified) (1 diff)
-
data/tar/make.sh (modified) (1 diff)
-
data/tcpdump/make.sh (modified) (1 diff)
-
data/tcsh/make.sh (modified) (1 diff)
-
data/tiff/make.sh (modified) (1 diff)
-
data/top/make.sh (modified) (1 diff)
-
data/uikittools/make.sh (modified) (1 diff)
-
data/unrar/make.sh (modified) (1 diff)
-
data/unzip/make.sh (modified) (1 diff)
-
data/uuid/make.sh (modified) (1 diff)
-
data/vfdecrypt/make.sh (modified) (1 diff)
-
data/vim/make.sh (modified) (1 diff)
-
data/vorbis/make.sh (modified) (1 diff)
-
data/vpnc_/make.sh (modified) (1 diff)
-
data/wget/make.sh (modified) (1 diff)
-
data/wget/mdns.diff (modified) (2 diffs)
-
data/whois/make.sh (modified) (1 diff)
-
data/x11/make.sh (modified) (1 diff)
-
data/x264/make.sh (modified) (1 diff)
-
data/xau/make.sh (modified) (1 diff)
-
data/xcb/make.sh (modified) (1 diff)
-
data/xcb-proto/make.sh (modified) (1 diff)
-
data/xext/make.sh (modified) (1 diff)
-
data/xextproto/make.sh (modified) (1 diff)
-
data/xeyes/make.sh (modified) (1 diff)
-
data/xi/make.sh (modified) (1 diff)
-
data/xineramaproto/make.sh (modified) (1 diff)
-
data/xml2/make.sh (modified) (1 diff)
-
data/xmu/make.sh (modified) (1 diff)
-
data/xproto/make.sh (modified) (1 diff)
-
data/xt/make.sh (modified) (1 diff)
-
data/xtrans/make.sh (modified) (1 diff)
-
data/zsh/make.sh (modified) (1 diff)
-
exec.sh (modified) (2 diffs)
-
folders.sh (modified) (2 diffs)
-
helper.sh (modified) (2 diffs)
-
make.sh (modified) (5 diffs)
-
package.sh (modified) (3 diffs)
-
people/ste (added)
-
rehash.sh (added)
-
util/catdir.sh (modified) (1 diff)
-
util/collect2 (modified) (1 diff)
-
util/configure.sh (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/bootstrap.sh
r212 r218 4 4 5 5 export PKG_BASE=$(realpath "$(dirname "$0")") 6 source "${PKG_BASE}/architect.sh" 7 6 8 export PKG_BOOT=${PKG_BASE}/Packager 7 export PKG_TARG=arm-apple-darwin8 9 9 10 rm -rf "${PKG_BOOT}" 10 11 svn export "${PKG_BASE}/over" "${PKG_BOOT}" 11 12 12 arm-apple-darwin-gcc-o "${PKG_BOOT}/usr/libexec/cydia_/godmode" "${PKG_BASE}/util/godmode.c"13 arm-apple-darwin-gcc-o "${PKG_BOOT}/usr/libexec/cydia_/symlink" "${PKG_BASE}/util/symlink.c"13 "${PKG_TARG}-gcc" -o "${PKG_BOOT}/usr/libexec/cydia_/godmode" "${PKG_BASE}/util/godmode.c" 14 "${PKG_TARG}-gcc" -o "${PKG_BOOT}/usr/libexec/cydia_/symlink" "${PKG_BASE}/util/symlink.c" 14 15 chmod +s "${PKG_BOOT}/usr/libexec/cydia_"/{godmode,symlink} 15 16 16 17 mkdir -p "${PKG_BOOT}/var/lib/dpkg/info" 17 18 18 PKG_REQS=(adv-cmds base bash bigboss coreutils cydia gawk grep inetutils iphonesurge less libarmfp modmyifone nano network-cmds rsync saurik sed shell-cmds ste system-cmdsunzip zip)19 PKG_REQS=(adv-cmds apt base bash bigboss coreutils cydia gawk grep inetutils iphonesurge less libarmfp libgcc modmyifone nano network-cmds nvi rsync saurik sed shell-cmds ste system-cmds tar unzip zip) 19 20 20 21 cd "${PKG_BASE}/data" 21 PKG_REQS=($(find -L "${PKG_REQS[@]}" | while read -r line; do realpath "${line}"; done | grep "/apl/tel/data/[^/]*$" | sed -e 's/.*\///' | sort -u)) 22 PKG_REQS=($({ 23 echo "${PKG_REQS[@]}" | tr ' ' $'\n' 24 find -L "${PKG_REQS[@]}" -name '*.dep' | sed -e 's/.*\/\([^\/]*\)\.dep/\1/' 25 } | sort -u)) 22 26 23 27 for PKG_NAME in "${PKG_REQS[@]}"; do … … 27 31 28 32 rm -rf "${PKG_BASE}/temp" 29 dpkg -x "${PKG_BASE}/debs/${PKG_NAME}_${PKG_VRSN}-${PKG_RVSN}_ darwin-arm.deb" "${PKG_BASE}/temp"33 dpkg -x "${PKG_BASE}/debs/${PKG_NAME}_${PKG_VRSN}-${PKG_RVSN}_${PKG_ARCH}.deb" "${PKG_BASE}/temp" 30 34 31 35 echo "merging ${PKG_NAME}..." … … 43 47 cd "${PKG_BOOT}" 44 48 45 rm -f ../Packager.tgz46 tar -zcvf ../Packager.tgz*49 rm -f "../Packager_${PKG_ARCH}.tgz" 50 tar -zcvf "../Packager_${PKG_ARCH}.tgz" * 47 51 48 52 cp -a bin/bash usr/libexec/cydia_ … … 65 69 cp -a usr/lib/libreadline.5.2.dylib usr/libexec/cydia_ 66 70 67 rm -f ../Packager.xml71 rm -f "../Packager_${PKG_ARCH}.xml" 68 72 find * -type l -print -o -name "terminfo" -prune | while read -r link; do 69 73 echo "<array><string>Exec</string><string>/usr/libexec/cydia_/symlink $(readlink "${link}") /${link}</string></array>" 70 74 rm -f "${link}" 71 done >> ../Packager.xml75 done >>"../Packager_${PKG_ARCH}.xml" 72 76 73 rm -f ../Packager.zip74 zip -qry ../Packager.zip*77 rm -f "../Packager_${PKG_ARCH}.zip" 78 zip -qry "../Packager_${PKG_ARCH}.zip" * 75 79 rm -rf "${PKG_BOOT}" -
trunk/build.sh
r199 r218 2 2 set -e 3 3 shopt -s extglob 4 for package in data/!(*_|cydia|ui*|iphone-python|llvm-gcc|mobileterminal|nethack); do 4 #for package in coreutils berkeleydb bzip2 apt adv-cmds libutil gettext gawk tar network-cmds shell-cmds odcctools readline modmyifone darwintools sed pcre gnupg grep inetutils saurik gzip dpkg iphonesurge unzip libarmfp nano base bash system-cmds libresolv zip ncurses less; do 5 for package in data/!(*_|cydia|iphone-python|mobileterminal|jocstrap|iphone-java|uicaboodle|pyobjc|python|setuptools); do 6 #for package in data/!(*_); do 5 7 PKG_NAME=$(basename "${package}") 6 8 echo "========== ${PKG_NAME} ==========" 7 ./ make.sh "${PKG_NAME}"9 ./package.sh "${PKG_NAME}" 8 10 done -
trunk/construct.sh
r199 r218 2 2 set -e 3 3 shopt -s extglob nullglob 4 PKG_BASE=$(pwd) 4 5 PKG_BASE=$(dirname "$(realpath "$0")") 6 cd "${PKG_BASE}" 7 PKG_RVSN=213 8 5 9 PKG_REPO=/dat/web/apt.saurik.com 6 10 PKG_OVER=${PKG_REPO}/indices/override.tangelo.main.gz 7 PKG_PKGS=${PKG_REPO}/dists/tangelo/main/binary-darwin-arm/Packages8 tag=arm-apple-darwin9 rm -rf link10 mkdir link11 for package in data/!(*_); do12 PKG_NAME=$(basename "${package}")13 PKG_DATA="${PKG_BASE}/data/${PKG_NAME}"14 echo "${PKG_NAME}" "$(cat "${PKG_DATA}/_metadata/priority")" "$(cat "${PKG_DATA}/_metadata/section")"15 ln -s "../debs/${PKG_NAME}_$(cat "${PKG_DATA}/_metadata/version")-$(cat "${PKG_BASE}/stat/${tag}/${PKG_NAME}/dest-ver")_darwin-arm.deb" link16 done | gzip -9c >"${PKG_OVER}"17 dpkg-scanpackages link <(zcat "${PKG_OVER}") | sed -e 's/: link\//: debs\//' >"${PKG_PKGS}"18 gzip -c "${PKG_PKGS}" >"${PKG_PKGS}.gz"19 #rm -rf "${PKG_REPO}/debs"20 #cp -a debs "${PKG_REPO}"21 cd "${PKG_REPO}/dists/tangelo"22 11 23 export PKG_RVSN=129 12 for PKG_ARCH in "${PKG_BASE}/arch"/*; do 13 PKG_ARCH=$(basename "${PKG_ARCH}") 14 echo "scanning ${PKG_ARCH}" 24 15 25 cat >main/binary-darwin-arm/Release <<EOF 16 PKG_PKGS=${PKG_REPO}/dists/tangelo/main/binary-${PKG_ARCH}/Packages 17 18 rm -rf "${PKG_BASE}/link" 19 mkdir "${PKG_BASE}/link" 20 for package in "${PKG_BASE}/data"/!(*_); do 21 PKG_NAME=$(basename "${package}") 22 PKG_DATA="${PKG_BASE}/data/${PKG_NAME}" 23 PKG_PRIO=$(cat "${PKG_DATA}/_metadata/priority") 24 echo "${PKG_NAME}" "${PKG_PRIO#+}" "$(cat "${PKG_DATA}/_metadata/section")" 25 26 PKG_FILE=${PKG_BASE}/stat/${PKG_ARCH}/${PKG_NAME}/dest-ver 27 if [[ -e ${PKG_FILE} ]]; then 28 PKG_FILE=${PKG_BASE}/debs/${PKG_NAME}_$(cat "${PKG_DATA}/_metadata/version")-$(cat "${PKG_FILE}")_${PKG_ARCH}.deb 29 if [[ -e ${PKG_FILE} ]]; then 30 ln -s "${PKG_FILE}" "${PKG_BASE}/link" 31 echo "${PKG_FILE}" 32 fi 33 fi 34 done | gzip -9c >"${PKG_OVER}" 35 36 dpkg-scanpackages "link" <(zcat "${PKG_OVER}") | sed -e 's/: link\//: debs\//' >"${PKG_PKGS}" 37 gzip -c "${PKG_PKGS}" >"${PKG_PKGS}.gz" 38 #rm -rf "${PKG_REPO}/debs" 39 #cp -a debs "${PKG_REPO}" 40 41 cat >"${PKG_REPO}/dists/tangelo/main/binary-${PKG_ARCH}/Release" <<EOF 26 42 Archive: stable 27 43 Version: 1.0r${PKG_RVSN} … … 29 45 Origin: Jay Freeman (saurik) 30 46 Label: Telesphoreo 31 Architecture: darwin-arm47 Architecture: ${PKG_ARCH} 32 48 EOF 49 done 50 51 cd "${PKG_REPO}/dists/tangelo" 33 52 34 53 { … … 39 58 Version: 1.0r${PKG_RVSN} 40 59 Codename: tangelo 41 Architectures: darwin-arm60 Architectures:$(for PKG_ARCH in "${PKG_BASE}/arch"/*; do echo -n " $(basename "${PKG_ARCH}")"; done) 42 61 Components: main 43 62 Description: Telesphoreo Tangelo 1.0r${PKG_RVSN} -
trunk/control.sh
r199 r218 35 35 if [[ $1 == status || $1 == available ]]; then 36 36 cat <<EOF 37 Installed-Size: $(dpkg -f "${PKG_BASE}/debs/${PKG_NAME}_${PKG_VRSN}-${PKG_RVSN}_ darwin-arm.deb" Installed-Size)37 Installed-Size: $(dpkg -f "${PKG_BASE}/debs/${PKG_NAME}_${PKG_VRSN}-${PKG_RVSN}_${PKG_ARCH}.deb" Installed-Size) 38 38 EOF 39 39 elif [[ $1 == control ]]; then … … 45 45 cat <<EOF 46 46 Maintainer: $(cat "${PKG_DATA}/_metadata/maintainer") 47 Architecture: darwin-arm47 Architecture: ${PKG_ARCH} 48 48 EOF 49 49 -
trunk/data/adv-cmds/make.sh
r199 r218 1 pkg:extract 2 cd * 1 pkg:setup 3 2 for tproj in finger fingerd last lsvfs md ps; do 4 3 "${PKG_TARG}-gcc" -o "${tproj}" "${tproj}.tproj"/*.c -D'__FBSDID(x)=' -
trunk/data/apr/make.sh
r199 r218 1 pkg:extract 2 cd * 3 pkg:patch 1 pkg:setup 4 2 pkg:configure --disable-static ac_cv_file__dev_zero=yes ac_cv_func_setpgrp_void=yes apr_cv_process_shared_works=yes apr_cv_mutex_robust_shared=no apr_cv_tcp_nodelay_with_cork=no 5 3 make -
trunk/data/apr-util/make.sh
r199 r218 1 pkg:extract 2 cd * 1 pkg:setup 3 2 pkg:configure --disable-static --with-apr="$(PKG_WORK_ apr)/apr-1.2.12" --with-berkeley-db="${PKG_ROOT}" 4 3 make -
trunk/data/apt/cfnetwork.diff
r199 r218 1 1 diff -ru apt-0.6.46.4.1/methods/http.cc apt-0.6.46.4.1+iPhone/methods/http.cc 2 2 --- apt-0.6.46.4.1/methods/http.cc 2006-12-04 14:37:36.000000000 +0000 3 +++ apt-0.6.46.4.1+iPhone/methods/http.cc 2008-04-06 10:00:37.000000000 +0000 4 @@ -44,6 +48,10 @@ 3 +++ apt-0.6.46.4.1+iPhone/methods/http.cc 2008-04-13 05:59:17.000000000 +0000 4 @@ -43,6 +47,11 @@ 5 5 6 // Internet stuff 6 7 #include <netdb.h> 7 8 +#include <arpa/inet.h> 9 + 8 10 +#include <CoreFoundation/CoreFoundation.h> 9 11 +#include <CoreServices/CoreServices.h> 10 12 +#include <SystemConfiguration/SystemConfiguration.h> 11 + 13 12 14 #include "connect.h" 13 15 #include "rfc2553emu.h" 14 #include "http.h" 15 @@ -51,6 +59,47 @@ 16 @@ -51,6 +60,47 @@ 16 17 /*}}}*/ 17 18 using namespace std; 18 19 19 +void CfrsError( CFReadStreamRef rs) {20 +void CfrsError(const char *name, CFReadStreamRef rs) { 20 21 + CFStreamError se = CFReadStreamGetError(rs); 21 22 + … … 26 27 + _error->Error("MacOSStatus: %ld", se.error); 27 28 + } else if (se.domain == kCFStreamErrorDomainNetDB) { 28 + _error->Error("NetDB: %s ", gai_strerror(se.error));29 + _error->Error("NetDB: %s %s", name, gai_strerror(se.error)); 29 30 + } else if (se.domain == kCFStreamErrorDomainMach) { 30 31 + _error->Error("Mach: %ld", se.error); … … 61 62 int HttpMethod::FailFd = -1; 62 63 time_t HttpMethod::FailTime = 0; 63 @@ -1062,159 +111 1,234@@64 @@ -1062,159 +1112,251 @@ 64 65 65 66 if (Queue == 0) … … 71 72 - delete Server; 72 73 - Server = new ServerState(Queue->Uri,this); 73 - } 74 + 75 + CFStringEncoding se = kCFStringEncodingUTF8; 76 + 77 + char *url = strdup(Queue->Uri.c_str()); 78 + url: 79 + URI uri = Queue->Uri; 80 + std::string hs = uri.Host; 81 + 82 + struct hostent *he = gethostbyname(hs.c_str()); 83 + if (he == NULL || he->h_addr_list[0] == NULL) { 84 + _error->Error(hstrerror(h_errno)); 85 + Fail(true); 86 + free(url); 87 } 74 88 - 75 89 - /* If the server has explicitly said this is the last connection … … 92 106 - Server = 0; 93 107 - continue; 94 - } 108 + 109 + uri.Host = inet_ntoa(* (struct in_addr *) he->h_addr_list[0]); 110 + 111 + std::string urs = uri; 112 + 113 + CFStringRef sr = CFStringCreateWithCString(kCFAllocatorDefault, urs.c_str(), se); 114 + CFURLRef ur = CFURLCreateWithString(kCFAllocatorDefault, sr, NULL); 115 + CFRelease(sr); 116 + CFHTTPMessageRef hm = CFHTTPMessageCreateRequest(kCFAllocatorDefault, CFSTR("GET"), ur, kCFHTTPVersion1_1); 117 + CFRelease(ur); 118 + 119 + struct stat SBuf; 120 + if (stat(Queue->DestFile.c_str(), &SBuf) >= 0 && SBuf.st_size > 0) { 121 + sr = CFStringCreateWithFormat(kCFAllocatorDefault, NULL, CFSTR("bytes=%li-"), (long) SBuf.st_size - 1); 122 + CFHTTPMessageSetHeaderFieldValue(hm, CFSTR("Range"), sr); 123 + CFRelease(sr); 124 + 125 + sr = CFStringCreateWithCString(kCFAllocatorDefault, TimeRFC1123(SBuf.st_mtime).c_str(), se); 126 + CFHTTPMessageSetHeaderFieldValue(hm, CFSTR("If-Range"), sr); 127 + CFRelease(sr);
