1. 23 Aug, 2015 2 commits
  2. 14 Aug, 2015 1 commit
  3. 14 Jul, 2015 2 commits
  4. 03 Jul, 2015 1 commit
  5. 01 Jun, 2015 1 commit
  6. 22 May, 2015 1 commit
  7. 20 May, 2015 1 commit
    • W. Trevor King's avatar
      namesys: Add recursive resolution · 3ead2443
      W. Trevor King authored
      This allows direct access to the earlier protocol-specific Resolve
      implementations.  The guts of each protocol-specific resolver are in
      the internal resolveOnce method, and we've added a new:
      
        ResolveN(ctx, name, depth)
      
      method to the public interface.  There's also:
      
        Resolve(ctx, name)
      
      which wraps ResolveN using DefaultDepthLimit.  The extra API endpoint
      is intended to reduce the likelyhood of clients accidentally calling
      the more dangerous ResolveN with a nonsensically high or infinite
      depth.  On IRC on 2015-05-17, Juan said:
      
      15:34 <jbenet> If 90% of uses is the reduced API with no chance to
        screw it up, that's a huge win.
      15:34 <wking> Why would those 90% not just set depth=0 or depth=1,
        depending on which they need?
      15:34 <jbenet> Because people will start writing `r.Resolve(ctx, name,
        d)` where d is a variable.
      15:35 <wking> And then accidentally set that variable to some huge
        number?
      15:35 <jbenet> Grom experience, i've seen this happen _dozens_ of
        times. people screw trivial things up.
      15:35 <wking> Why won't those same people be using ResolveN?
      15:36 <jbenet> Because almost every example they see will tell them to
        use Resolve(), and they will mostly stay away from ResolveN.
      
      The per-prodocol versions also resolve recursively within their
      protocol.  For example:
      
        DNSResolver.Resolve(ctx, "ipfs.io", 0)
      
      will recursively resolve DNS links until the referenced value is no
      longer a DNS link.
      
      I also renamed the multi-protocol ipfs NameSystem (defined in
      namesys/namesys.go) to 'mpns' (for Multi-Protocol Name System),
      because I wasn't clear on whether IPNS applied to the whole system or
      just to to the DHT-based system.  The new name is unambiguously
      multi-protocol, which is good.  It would be nice to have a distinct
      name for the DHT-based link system.
      
      Now that resolver output is always prefixed with a namespace and
      unprefixed mpns resolver input is interpreted as /ipfs/,
      core/corehttp/ipns_hostname.go can dispense with it's old manual
      /ipfs/ injection.
      
      Now that the Resolver interface handles recursion, we don't need the
      resolveRecurse helper in core/pathresolver.go.  The pathresolver
      cleanup also called for an adjustment to FromSegments to more easily
      get slash-prefixed paths.
      
      Now that recursive resolution with the namesys/namesys.go composite
      resolver always gets you to an /ipfs/... path, there's no need for the
      /ipns/ special case in fuse/ipns/ipns_unix.go.
      
      Now that DNS links can be things other than /ipfs/ or DHT-link
      references (e.g. they could be /ipns/<domain-name> references) I've
      also loosened the ParsePath logic to only attempt multihash validation
      on IPFS paths.  It checks to ensure that other paths have a
      known-protocol prefix, but otherwise leaves them alone.
      
      I also changed some key-stringification from .Pretty() to .String()
      following the potential deprecation mentioned in util/key.go.
      3ead2443
  8. 09 May, 2015 1 commit
    • W. Trevor King's avatar
      path/resolver_test: Test recursive Link resolution · 19823c67
      W. Trevor King authored
      Setup a three-level graph:
      
        a -(child)-> b -(grandchild)-> c
      
      and then try and resolve:
      
        /ipfs/<hash-of-a>/child/grandchild
      
      Before 10669e8b (path/resolver: Fix recursive path resolution,
      2015-05-08) this failed with:
      
        resolver_test.go:71: no link named "grandchild" under QmSomeRandomHash
      
      The boilerplate for this test is from pin/pin_test.go, and I make no
      claims that it's the best way to setup the test graph ;).
      19823c67
  9. 08 May, 2015 2 commits
    • W. Trevor King's avatar
      path/resolver: Fix recursive path resolution · 10669e8b
      W. Trevor King authored
      I'm not entirely clear on Go's scoping (there's some text I can't
      quite parse here [1]), but it seems like the := version (because this
      is the first time we use 'err') was masking the function-level 'nd'
      just for this if block.  That means that after we get out of the if
      block and return to the start of the for-loop for the next pass,
      nd.Links would still be pointing at the original object's links.
      
      This commit drops the :=, which fixes the earlier:
      
        $ ipfs ls QmXX7YRpU7nNBKfw75VG7Y1c3GwpSAGHRev67XVPgZFv9R/static/css
        Error: no link named "css" under QmXX7YRpU7nNBKfw75VG7Y1c3GwpSAGHRev67XVPgZFv9R
      
      so we get the intended:
      
        $ ipfs ls QmXX7YRpU7nNBKfw75VG7Y1c3GwpSAGHRev67XVPgZFv9R/static/css
        Qme4r3eA4h1revFBgCEv1HF1U7sLL4vvAyzRLWJhCFhwg2 7051 style.css
      
      It also means we're probably missing (or are unreliably using) a
      multi-level-path-resolving test.
      
      [1]: https://golang.org/ref/spec#Declarations_and_scope
      10669e8b
    • Henry's avatar
      core: add context.Context param to core.Resolve() · f640ba00
      Henry authored
      commands/object: remove objectData() and objectLinks() helpers
      resolver: added context parameters
      sharness: $HASH carried the \r from the http protocol with
      sharness: write curl output to individual files
      http gw: break PUT handler until PR#1191
      f640ba00
  10. 27 Apr, 2015 4 commits
  11. 20 Apr, 2015 2 commits
    • gatesvp's avatar
      Move IPNS resolutions into the core library · 31ff9545
      gatesvp authored
      Move IPNS resolutions into the core library via the pathresolver.go
      file. Fix the CLI commands to leverage this core component.
      31ff9545
    • Jeromy's avatar
      fix for #1008 and other pinning fixes · 0a6b880b
      Jeromy authored
      This commit adds a new set of sharness tests for pinning, and addresses
      bugs that were pointed out by said tests.
      
      test/sharness: added more pinning tests
      
      Pinning is currently broken. See issue #1051. This commit introduces
      a few more pinning tests. These are by no means exhaustive, but
      definitely surface the present problems going on. I believe these
      tests are correct, but not sure. Pushing them as failing so that
      pinning is fixed in this PR.
      
      make pinning and merkledag.Get take contexts
      
      improve 'add' commands usage of pinning
      
      FIXUP: fix 'pin lists look good'
      
      ipfs-pin-stat simple script to help check pinning
      
      This is a simple shell script to help check pinning.
      
      We ought to strive towards making adding commands this easy.
      The http api is great and powerful, but our setup right now
      gets in the way. Perhaps we can clean up that area.
      
      updated t0081-repo-pinning
      
      - fixed a couple bugs with the tests
      - made it a bit clearer (still a lot going on)
      - the remaining tests are correct and highlight a problem with
        pinning. Namely, that recursive pinning is buggy. At least:
        towards the end of the test, $HASH_DIR4 and $HASH_FILE4 should
        be pinned indirectly, but they're not. And thus get gc-ed out.
        There may be other problems too.
      
      cc @whyrusleeping
      
      fix grep params for context deadline check
      
      fix bugs in pin and pin tests
      
      check for block local before checking recursive pin
      0a6b880b
  12. 31 Mar, 2015 1 commit
  13. 31 Jan, 2015 1 commit
  14. 30 Jan, 2015 1 commit
  15. 29 Jan, 2015 1 commit
  16. 09 Jan, 2015 1 commit
  17. 09 Nov, 2014 1 commit
  18. 30 Oct, 2014 1 commit
  19. 26 Oct, 2014 1 commit
  20. 09 Oct, 2014 1 commit
    • Juan Batiz-Benet's avatar
      u.DOut -> log.Debug · 972c0f7b
      Juan Batiz-Benet authored
      and other logging switches. I kept the u.PErr and u.POut in cli
      commands, as those do need to write raw output directly.
      972c0f7b
  21. 04 Oct, 2014 2 commits
  22. 01 Oct, 2014 3 commits
  23. 10 Sep, 2014 1 commit
    • Brian Tiger Chow's avatar
      vendor dependencies with godep · 7968b45e
      Brian Tiger Chow authored
      dependencies are vendored into Godeps/_workspace and commit versions are
      recorded in Godeps.json
      
      update datastore to e89f0511
      update go.crypto
      7968b45e
  24. 29 Aug, 2014 1 commit
  25. 22 Jul, 2014 1 commit
    • Juan Batiz-Benet's avatar
      go lint · f718bd6a
      Juan Batiz-Benet authored
      link errors left:
      - protocol buffers output is not lint-friendly
      f718bd6a
  26. 21 Jul, 2014 1 commit
  27. 06 Jul, 2014 1 commit
  28. 26 Jun, 2014 1 commit