Hi All,

Could anybody throw some light on the issue ?

Thanks!

On Sep 20, 11:05 pm, CodePupil <[email protected]> wrote:
> 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