Could someone please look into the issue and let me know if it's a
limitation of Android platform(It shouldn't be though) .. ?

Thanks!

On Sep 16, 6:56 pm, CodePupil <[email protected]> wrote:
> Here is the discussion between me and David but still solution is out
> of reach !! :(
>
> ########################################################################### #
>
> Hi,
>
> h_errno has the value "TRY_AGAIN" aftergethostbyname() returns NULL.
>
> h_errno suggets "
> A temporary error occurred on an authoritative name server. Try again
> later !!
> "
>
> Thanks!
>
> => On Tue, Sep 15, 2009 at 5:24 AM, David Turner <[email protected]>
> wrote:
>
> Try readinf the value of the h_errno variable aftergethostbyname()
> returns NULL.
> You might also want to try getaddrinfo() which also allows you to
> perform DNS resolution (though with a difference interface)
> and see if it changes anything.
>
> There is a chance that you're encoutering a subtle bug in the DNS
> resolver implementation. Can you provide two short
> source files that reproduce the problem?
>
> => On Mon, Sep 14, 2009 at 11:29 AM, murlivala <[email protected]>
> wrote:
>
> But A itself is launched from shell and both A and B are native code !
> Since A and B are both written in Native code, B alone is able to
> work.
> I'm quite curious that What difference execve() can make which is used
> in the app A ?
> I'm not getting any exception, but NULL which is returned by
> gethostname() in B after being executed from A using execve() .. !
>
> Thanks!
>
> =>On Mon, Sep 14, 2009 at 10:25 PM, David Turner <[email protected]>
> wrote:
>
> My understanding is that B is not a real Android application, just a
> native executable that happens to be installed.
>
> When you launch B from an adb shell, you're doing it from the "shell"
> user/group ID I believe.
> When you launch it from application A, you launch it from A's own
> userId/groupId which has less permission that the shell one.
>
> the kernel controls permissions based on the UID/GID of processes.
>
> =>On Mon, Sep 14, 2009 at 8:03 AM, CodePupil <[email protected]>
> wrote:
>
> Hi,
>
> Thanks for the reply but still there is a room for appropriate
> explanation(s).
> First let me clarify the problem:
>
> Suppose I have test app A which triggers the application B which needs
> to resolve the remote hostname.
> Now when I execute B directly from the shell, it works fine.
> When B is triggered by A using execve(), It fails.
>
> If this fails due to less permissions(may be), I don't be able to
> understand How could it be?
> If I execute both the apps(A and B)from shell(from # prompt), both
> should have same permissions.
> Either both should work or should simply fail.
>
> Does Android system itself decide to execute the app giving it less
> permissions if that app is triggerred using execve() call ?
>
> One more thing, If I triggerred my app using system() call, it works
> FINE !
> So now, scene is like this:
>
> If B is executed itself
> #  ./B
> Result -> Works
>
> If B is executed by A using system() call
> #  ./A
> Result -> Works
>
> If B is executed by A using execve() call
> #  ./A
> Result -> Doesn't work  -> ??
>
> Looking for better explanation(s) !
>
> Thanks!
>
> ########################################################################### #
>
> On Sep 14, 6:10 pm, David Turner <[email protected]> wrote:
>
>
>
> > On Mon, Sep 14, 2009 at 6:06 AM, lbcoder <[email protected]> wrote:
>
> > > There are two DNS sets on an android device.
> > > The "linux" set and the "android" set.
> > > You can find the DNS servers used by linux by checking the contents
> > > of /etc/resolv.conf
> > > The android dns servers can be found by "getprop".
> > > They do not match.
> > > The android dns servers are set by dhcp.
> > > The linux dns servers are more like fallbacks and are set statically.
>
> > This is correct, but it's only an implementation detail that should not
> > affect typical application developers (even the C library DNS resolver uses
> > the
> > system properties to know which DNS servers to talk to), so there should be
> > no difference between native and VM code when it comes to DNS resolution.
>
> > > On Sep 14, 2:56 am, CodePupil <[email protected]> wrote:
> > > > Hi All,
>
> > > > I'm facing strange problem in resolving remote hostname.
> > > > I have an application which needs to resolve some remote hostname in
> > > > order to connect to it, and If I start this application using execve()
> > > > call, the application doesn't resolve hostname,gethostbyname()
> > > > returns NULL. If I execute the application directly, it's able to
> > > > resolve the host name but if it's executed using execve() call, it
> > > > doesn't.
> > > > Same approach is working fine on Linux machine but on Android platform
> > > > it's not able to work.
>
> > > > On Linux:
> > > > execve()  ----->  application()  ------> Works
> > > > app()       -----> Works
>
> > > > On Android:
> > > > execve()  ----->  application()  ------> Doesn't works   -------> ???
> > > > app()       -----> Works
>
> > > ___________________________________________________________________________
> > >  ­____
>
> > > > Could anybody please throw some light on the matter ?
>
> > > > Thanks!- Hide quoted text -
>
> > - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Android Discuss" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/android-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to